Background

Notes and format last updated Apr 9, 2020

Growth rates

Confirmed cases (total and new)

U.S.

Our states

Deaths (total and new)

U.S.

Our states

By population rankings

States

Total confirmed cases

Table of total confirmed cases per million residents (all 50 states)

##                        state casesPerMillion
##  1:                 New York           7,679
##  2:               New Jersey           5,340
##  3:                Louisiana           3,663
##  4:              Connecticut           2,462
##  5:            Massachusetts           2,435
##  6:     District of Columbia           2,040
##  7:                 Michigan           2,024
##  8:             Rhode Island           1,368
##  9:             Pennsylvania           1,282
## 10:               Washington           1,194
## 11:                 Illinois           1,189
## 12:                 Delaware           1,146
## 13:                 Colorado             981
## 14:                  Vermont             969
## 15:                  Georgia             961
## 16:                 Maryland             914
## 17:                  Indiana             882
## 18:                   Nevada             752
## 19:                  Florida             730
## 20:                    Idaho             689
## 21:              Mississippi             673
## 22:                Tennessee             621
## 23:                     Utah             584
## 24:            New Hampshire             579
## 25:                 Missouri             542
## 26:                  Alabama             509
## 27:           South Carolina             495
## 28:               California             481
## 29:                Wisconsin             473
## 30:             South Dakota             444
## 31:                     Ohio             440
## 32:                 Virginia             427
## 33:               New Mexico             412
## 34:                    Maine             399
## 35:                  Wyoming             397
## 36:                 Oklahoma             385
## 37:                  Arizona             374
## 38:                     Iowa             362
## 39:                   Kansas             362
## 40:                 Arkansas             356
## 41:                    Texas             341
## 42:             North Dakota             329
## 43:           North Carolina             326
## 44:                 Kentucky             311
## 45:                  Montana             310
## 46:                   Alaska             306
## 47:                   Hawaii             305
## 48:                   Oregon             293
## 49:                 Nebraska             278
## 50:            West Virginia             269
## 51:                Minnesota             204
## 52:              Puerto Rico             194
## 53:                     Guam            <NA>
## 54: Northern Mariana Islands            <NA>
## 55:           Virgin Islands            <NA>
##                        state casesPerMillion

New confirmed cases

Table of new cases per million residents: rolling 3-day total (all 50 states)

##                        state casesNewPerMillion
##  1:                 New York              1,361
##  2:               New Jersey              1,118
##  3:              Connecticut                871
##  4:                Louisiana                864
##  5:     District of Columbia                626
##  6:            Massachusetts                622
##  7:             Rhode Island                498
##  8:                 Michigan                459
##  9:                 Delaware                454
## 10:             Pennsylvania                376
## 11:                  Georgia                326
## 12:                 Maryland                317
## 13:                 Illinois                300
## 14:                  Indiana                227
## 15:             South Dakota                172
## 16:                 Missouri                156
## 17:                  Florida                155
## 18:                  Vermont                149
## 19:               Washington                146
## 20:                   Nevada                142
## 21:                  Alabama                134
## 22:                 Colorado                122
## 23:              Mississippi                122
## 24:                 Virginia                118
## 25:               New Mexico                114
## 26:                Tennessee                103
## 27:               California                100
## 28:                   Kansas                100
## 29:           South Carolina                 97
## 30:                    Texas                 96
## 31:                     Ohio                 94
## 32:            West Virginia                 88
## 33:                     Iowa                 87
## 34:            New Hampshire                 87
## 35:                     Utah                 84
## 36:                 Nebraska                 83
## 37:                Wisconsin                 83
## 38:           North Carolina                 79
## 39:                 Kentucky                 77
## 40:                 Arkansas                 74
## 41:                    Idaho                 73
## 42:                 Oklahoma                 68
## 43:                  Arizona                 62
## 44:             North Dakota                 57
## 45:                   Alaska                 53
## 46:                  Wyoming                 51
## 47:                    Maine                 49
## 48:                   Hawaii                 45
## 49:              Puerto Rico                 45
## 50:                   Oregon                 40
## 51:                Minnesota                 38
## 52:                  Montana                 31
## 53:                     Guam               <NA>
## 54: Northern Mariana Islands               <NA>
## 55:           Virgin Islands               <NA>
##                        state casesNewPerMillion

Total deaths

Table of total deaths per million residents (all 50 states)

##                        state deathsPerMillion
##  1:                 New York              322
##  2:               New Jersey              169
##  3:                Louisiana              140
##  4:                 Michigan               96
##  5:              Connecticut               93
##  6:            Massachusetts               62
##  7:               Washington               59
##  8:     District of Columbia               38
##  9:                 Illinois               36
## 10:                  Vermont               36
## 11:                  Georgia               34
## 12:                 Colorado               33
## 13:             Rhode Island               33
## 14:                  Indiana               30
## 15:                   Nevada               25
## 16:             Pennsylvania               24
## 17:              Mississippi               22
## 18:                 Maryland               20
## 19:                 Delaware               19
## 20:                 Oklahoma               19
## 21:                Wisconsin               18
## 22:                 Kentucky               16
## 23:                     Ohio               16
## 24:                  Florida               14
## 25:                 Missouri               14
## 26:                  Alabama               13
## 27:                   Kansas               13
## 28:            New Hampshire               13
## 29:               California               12
## 30:           South Carolina               12
## 31:                Tennessee               12
## 32:                  Arizona               10
## 33:                    Idaho               10
## 34:                    Maine               10
## 35:                   Oregon                9
## 36:                     Iowa                8
## 37:                 Virginia                8
## 38:                 Nebraska                7
## 39:               New Mexico                7
## 40:              Puerto Rico                7
## 41:                   Alaska                6
## 42:                Minnesota                6
## 43:             South Dakota                6
## 44:                    Texas                6
## 45:                 Arkansas                5
## 46:                  Montana                5
## 47:           North Carolina                5
## 48:             North Dakota                5
## 49:                     Utah                4
## 50:                   Hawaii                3
## 51:            West Virginia                2
## 52:                  Wyoming                0
## 53:                     Guam             <NA>
## 54: Northern Mariana Islands             <NA>
## 55:           Virgin Islands             <NA>
##                        state deathsPerMillion

New deaths

Table of new deaths per million residents: rolling 3-day total (all 50 states)

##                        state deathsNewPerMillion
##  1:                 New York                 108
##  2:               New Jersey                  66
##  3:              Connecticut                  40
##  4:                Louisiana                  37
##  5:                 Michigan                  34
##  6:            Massachusetts                  29
##  7:                  Georgia                  14
##  8:                 Illinois                  14
##  9:               Washington                  14
## 10:             Pennsylvania                  12
## 11:                  Indiana                  11
## 12:                   Nevada                  11
## 13:                 Colorado                   9
## 14:                 Maryland                   9
## 15:             Rhode Island                   9
## 16:              Mississippi                   8
## 17:                 Oklahoma                   8
## 18:     District of Columbia                   7
## 19:                 Kentucky                   6
## 20:            New Hampshire                   6
## 21:                     Ohio                   6
## 22:                 Delaware                   5
## 23:                    Idaho                   5
## 24:                   Kansas                   5
## 25:                 Missouri                   5
## 26:                Wisconsin                   5
## 27:                  Alabama                   4
## 28:                  Florida                   4
## 29:             South Dakota                   4
## 30:                Tennessee                   4
## 31:               California                   3
## 32:                 Nebraska                   3
## 33:           South Carolina                   3
## 34:                  Arizona                   2
## 35:                    Maine                   2
## 36:           North Carolina                   2
## 37:                   Oregon                   2
## 38:                    Texas                   2
## 39:                 Virginia                   2
## 40:                   Alaska                   1
## 41:                     Iowa                   1
## 42:                Minnesota                   1
## 43:               New Mexico                   1
## 44:             North Dakota                   1
## 45:              Puerto Rico                   1
## 46:                     Utah                   1
## 47:                  Vermont                   1
## 48:                 Arkansas                   0
## 49:                   Hawaii                   0
## 50:                  Montana                   0
## 51:            West Virginia                   0
## 52:                  Wyoming                   0
## 53:                     Guam                <NA>
## 54: Northern Mariana Islands                <NA>
## 55:           Virgin Islands                <NA>
##                        state deathsNewPerMillion

Counties

Confirmed cases

Table showing total cases per million and percentile for all US counties Includes our counties and the top 5 in the US for perspective

# merge county raw and county pop
county.per.cap <- merge(county.raw, county_pop, all.x = T, by.x = c("county", "state"), by.y = c("CTYNAME", "STNAME"))
county.per.cap[, casesPerMillion := round(cases/POPESTIMATE2019 * 1000000, 2)]
date.cut <- max(county.per.cap$date)
county.per.cap <- county.per.cap[date == date.cut]
county.per.cap <- county.per.cap[order(-casesPerMillion), c("county", "state", "casesPerMillion")]
county.per.cap[, rawRanking := .I]
county.per.cap[, percentile := floor((3142 - rawRanking)/31.42)]
county.per.cap[, casesPerMillion := comma(casesPerMillion)]
county.per.cap[, flgOurCounty := ifelse(county %in% "Pierce" & state %in% "Washington", 1,
                                       ifelse(county %in% "Orange" & state %in% "California", 1,
                                              ifelse(county %in% c("Richland", "York") & state %in% "South Carolina", 1,
                                                     ifelse(county %in% "Davidson" & state %in% "Tennessee", 1, 0))))]
county.per.cap[flgOurCounty == 1 | rawRanking < 6, -c("flgOurCounty")]
##          county          state casesPerMillion rawRanking percentile
##  1:    Rockland       New York          19,685          1         99
##  2:      Blaine          Idaho          18,592          2         99
##  3: Westchester       New York          16,421          3         99
##  4:      Nassau       New York          13,669          4         99
##  5:    Randolph        Georgia          12,836          5         99
##  6:    Davidson      Tennessee           1,642        116         96
##  7:    Richland South Carolina             895        308         90
##  8:      Pierce     Washington             885        313         90
##  9:        York South Carolina             409        839         73
## 10:      Orange     California             320       1071         65

Our county percentiles over time

county.per.cap <- merge(county.raw, county_pop, all.x = T, by.x = c("county", "state"), by.y = c("CTYNAME", "STNAME"))
county.per.cap[, casesPerMillion := round(cases/POPESTIMATE2019 * 1000000, 2)]
county.per.cap <- county.per.cap[order(fips, date),
                                 .(casesPerMillion = max(casesPerMillion)),
                                 by = c("fips", "date")]

county.per.cap <- county.per.cap[!is.na(casesPerMillion) & as.Date(date) >= "2020-03-16"]
county.per.cap.casted <- dcast.data.table(county.per.cap, factor(fips) ~ factor(date), value.var = "casesPerMillion", fun.aggregate = sum)
for(i in seq.Date(as.Date("2020-03-16"), max(as.Date(county.raw$date)), by = "day")) {
 # i <- "2020-04-07" 
  i <- format(as.Date(i, origin = "1970-01-01"), "%Y-%m-%d")
    colnames <- c("fips", as.character(i))
    temp <- county.per.cap.casted[, ..colnames]
    setnames(temp, as.character(i), "casesPerMillion")
    temp <- temp[order(-casesPerMillion)]
    temp[, rawRanking := .I]
    temp[, paste0("percentile_", as.character(i)) := floor((3142 - rawRanking)/31.42)]
    county.per.cap.casted <- merge(county.per.cap.casted, temp[, c(1,4)], all.x = T, by = "fips")
}

setnames(county.per.cap.casted, "fips", "percentile_fips")
county.per.cap.casted <- county.per.cap.casted[, .SD, .SDcols = patterns("^percentile")]
county.per.cap.melt <- melt(county.per.cap.casted, id.var = "percentile_fips")
county.per.cap.melt[, variable := gsub("percentile_(.*)", "\\1", variable)]
our.fips <- c(6059, 47037, 53053, 45091, 45079)
county.per.cap.melt <- county.per.cap.melt[percentile_fips %in% our.fips]

county.per.cap.melt[, county := county.raw$county[match(county.per.cap.melt$percentile_fips, county.raw$fips)]]

plot.county.per.cap <- ggplot(county.per.cap.melt, aes(x = as.Date(variable), y = value, color = county)) +
  geom_line(aes(group = county)) +
    labs(x = "Date",
       y = "Percentile of US counties",
       title = "Our county percentiles for total COVID cases",
       subtitle = "Percentiles based on total cases per million residents",
       color = "County") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5))
plot.county.per.cap

Deaths

Table showing total deaths per million and percentile for all US counties Includes our counties and the top 5 in the US for perspective

county.per.cap <- merge(county.raw, county_pop, all.x = T, by.x = c("county", "state"), by.y = c("CTYNAME", "STNAME"))
county.per.cap[, deathsPerMillion := round(deaths/POPESTIMATE2019 * 1000000, 2)]
date.cut <- max(county.per.cap$date)
county.per.cap <- county.per.cap[date == date.cut]
county.per.cap <- county.per.cap[order(-deathsPerMillion), c("county", "state", "deathsPerMillion")]
county.per.cap[, rawRanking := .I]
county.per.cap[, percentile := floor((3142 - rawRanking)/31.42)]
county.per.cap[, deathsPerMillion := comma(deathsPerMillion)]
county.per.cap[, flgOurCounty := ifelse(county %in% "Pierce" & state %in% "Washington", 1,
                                       ifelse(county %in% "Orange" & state %in% "California", 1,
                                              ifelse(county %in% c("Richland", "York") & state %in% "South Carolina", 1,
                                                     ifelse(county %in% "Davidson" & state %in% "Tennessee", 1, 0))))]
county.per.cap[flgOurCounty == 1 | rawRanking < 6, -c("flgOurCounty")]
##        county          state deathsPerMillion rawRanking percentile
##  1:   Terrell        Georgia            1,055          1         99
##  2: Dougherty        Georgia              705          2         99
##  3:     Greer       Oklahoma              700          3         99
##  4:     Baker        Georgia              658          4         99
##  5:     Toole        Montana              633          5         99
##  6:  Richland South Carolina               24        425         86
##  7:  Davidson      Tennessee               19        499         84
##  8:    Pierce     Washington               18        521         83
##  9:      York South Carolina                7        737         76
## 10:    Orange     California                5        786         74

Our county percentiles over time

county.per.cap <- merge(county.raw, county_pop, all.x = T, by.x = c("county", "state"), by.y = c("CTYNAME", "STNAME"))
county.per.cap[, deathsPerMillion := round(deaths/POPESTIMATE2019 * 1000000, 2)]
county.per.cap <- county.per.cap[order(fips, date),
                                 .(deathsPerMillion = max(deathsPerMillion)),
                                 by = c("fips", "date")]

county.per.cap <- county.per.cap[!is.na(deathsPerMillion) & as.Date(date) >= "2020-03-16"]
county.per.cap.casted <- dcast.data.table(county.per.cap, factor(fips) ~ factor(date), value.var = "deathsPerMillion", fun.aggregate = sum)
for(i in seq.Date(as.Date("2020-03-16"), max(as.Date(county.raw$date)), by = "day")) {
 # i <- "2020-04-07" 
  i <- format(as.Date(i, origin = "1970-01-01"), "%Y-%m-%d")
    colnames <- c("fips", as.character(i))
    temp <- county.per.cap.casted[, ..colnames]
    setnames(temp, as.character(i), "deathsPerMillion")
    temp <- temp[order(-deathsPerMillion)]
    temp[, rawRanking := .I]
    temp[, paste0("percentile_", as.character(i)) := floor((3142 - rawRanking)/31.42)]
    county.per.cap.casted <- merge(county.per.cap.casted, temp[, c(1,4)], all.x = T, by = "fips")
}

setnames(county.per.cap.casted, "fips", "percentile_fips")
county.per.cap.casted <- county.per.cap.casted[, .SD, .SDcols = patterns("^percentile")]
county.per.cap.melt <- melt(county.per.cap.casted, id.var = "percentile_fips")
county.per.cap.melt[, variable := gsub("percentile_(.*)", "\\1", variable)]
our.fips <- c(6059, 47037, 53053, 45091, 45079)
county.per.cap.melt <- county.per.cap.melt[percentile_fips %in% our.fips]

county.per.cap.melt[, county := county.raw$county[match(county.per.cap.melt$percentile_fips, county.raw$fips)]]

plot.county.per.cap <- ggplot(county.per.cap.melt, aes(x = as.Date(variable), y = value, color = county)) +
  geom_line(aes(group = county)) +
    labs(x = "Date",
       y = "Percentile of US counties",
       title = "Our county percentiles for total COVID deaths",
       subtitle = "Percentiles based on total deaths per million residents",
       color = "County") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5))
plot.county.per.cap

Raw counts

Total confirmed cases

U.S.

Our states

Our counties

New confirmed cases

U.S.

Our states

Our counties

Total deaths

U.S.

Our states

Our counties

New deaths

U.S.

Our states

Our counties

Stay-at-home comparisons